namespace ext.menu
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// A base class for all menu items that require menu-related functionality (like sub-menus) and are not static
	/// display items. Item extends the base functionality of {@link Ext.menu.BaseItem} by adding menu-specific
	/// activation and click handling.
	/// </summary>
	/// <definedin>src\widgets\menu\Item.js</definedin>
	[ScriptName("Item")]
	[ScriptNamespace("Ext.menu")]
	[Imported()]
	public partial class Item : ext.menu.BaseItem
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">Configuration options</param>
		public Item(ext.menu.Item_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public Item()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// Either an instance of {@link Ext.menu.Menu} or the config object for an
		/// {@link Ext.menu.Menu} which acts as the submenu when this item is activated.
		/// </summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		/// <optional>Optional Field</optional>
		[ScriptName("menu")]
		public object Menu;
		
		/// <summary>
		/// The path to an icon to display in this item (defaults to Ext.BLANK_IMAGE_URL). If
		/// icon is specified {@link #iconCls} should not be.
		/// </summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("icon")]
		public string Icon;
		
		/// <summary>
		/// A CSS class that specifies a background image that will be used as the icon for
		/// this item (defaults to &apos;&apos;). If iconCls is specified {@link #icon} should not be.
		/// </summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("iconCls")]
		public string IconCls;
		
		/// <summary>The text to display in this item (defaults to &apos;&apos;).</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("text")]
		public string Text;
		
		/// <summary>The href attribute to use for the underlying anchor link (defaults to &apos;#&apos;).</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("href")]
		public string Href;
		
		/// <summary>The target attribute to use for the underlying anchor link (defaults to &apos;&apos;).</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("hrefTarget")]
		public string HrefTarget;
		
		/// <summary>The default CSS class to use for menu items (defaults to &apos;x-menu-item&apos;)</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("itemCls")]
		public string ItemCls;
		
		/// <summary>True if this item can be visually activated (defaults to true)</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("canActivate")]
		public bool CanActivate;
		
		/// <summary>Length of time in milliseconds to wait before showing this item (defaults to 200)</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("showDelay")]
		public System.Number ShowDelay;
		
		/// <summary>The altText to use for the icon, if it exists. Defaults to &apos;&apos;.</summary>
		/// <htmlSummary>The altText to use for the icon, if it exists. Defaults to &lt;tt&gt;&apos;&apos;&lt;/tt&gt;.</htmlSummary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("altText")]
		public string AltText;
		#endregion
		
		#region Properties
		/// <summary>The submenu associated with this Item if one was configured.</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		[ScriptName("menu")]
		[IntrinsicProperty()]
		public ext.menu.Menu MenuProperty
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>Sets the text to display in this menu item</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		/// <param name="text">The text to display</param>
		[ScriptName("setText")]
		public void SetText(string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the CSS class to apply to the item&apos;s icon element</summary>
		/// <definedin>src\widgets\menu\Item.js</definedin>
		/// <param name="cls">The CSS class to apply</param>
		[ScriptName("setIconClass")]
		public void SetIconClass(string cls)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
